perm filename EFTPSB.MAC[11,HE] blob sn#656306 filedate 1982-04-29 generic text, type T, neo UTF8
; Copyright Xerox Corporation 1979
;** This may have bugs, the last few lines used to have garbage there!

	.TITLE	RT11
	.CSECT	GLOBAL
G=.
.=G+220.+220.
	.WORD	GETSTR
	.WORD	WRTSTR
	.WORD	OPEN
	.WORD	CLOSED
	.WORD	READD
	.WORD	WRITED
	.CSECT
ERRBYT=52
	.MCALL	.READW,.WRITW,.CLOSE,.PRINT,.GTLIN,.FETCH,.LOOKUP
	.MCALL	.ENTER,.CSISPC
GETSTR::ASL	R1
	MOV	R0,R5
	MOV	R1,R4
	.GTLIN	#STORAG
	MOV	#STORAG,R1
	MOV	R1,R2
1$:	TSTB	(R1)+
	BNE	1$
	SUB	R2,R1
	DEC	R1
	MOV	R1,TEMP
	MOVB	TEMP,(R4)+
2$:	MOVB	(R2)+,(R4)+
	SOB	R1,2$
	MOV	R5,R0
	ADD	#2,(SP)
	RTS	PC

WRTSTR::ASL	R1
	MOV	R0,R5
	CLR	R2
	MOV	#STORAG,R2
	MOVB	(R1)+,R3
1$:	MOVB	(R1)+,(R2)+
	SOB	R3,1$
	MOVB	#0,(R2)
	.PRINT	#STORAG
	MOV	R5,R0
	ADD	#2,(SP)
	RTS	PC

WRITED::MOV	R0,R5
	ASL	R2
	.WRITW	#AREA,R1,R2,R3,R4
	BCS	ERR
	MOV	#-1,R1
	BR	EXIT
ERR:	MOV	@#ERRBYT,R1
EXIT:	MOV	R5,R0
	ADD	#2,(SP)
	RTS	PC

READD::	MOV	R0,R5
	ASL	R2
	MUL	#256.,R3
	.READW	#AREA,R1,R2,R3,R4
	BCS	ERR
	MOV	#-1,R1
	BR	EXIT1
ERR1:	MOV	@#ERRBYT,R1
EXIT1:	MOV	R5,R0
	ADD	#2,(SP)
	RTS	PC

CLOSED::MOV	R0,R5
	.CLOSE	R1
	MOV	R5,R0
	ADD	#2,(SP)
	RTS	PC

OPEN::	ASL	R3
	MOV	R0,R5
	ASL	R2
	MOV	SP,R4
	TST	R2
	BEQ	1$
	INC	R2
1$:	.CSISPC	#AREA,#DEXT,R2
	MOV	R4,SP
	BCS	CSIERR
	.FETCH	R3,#AREA+36
	BCS	FETERR
	TST	R1
	BGT	WRT
	.LOOKUP	#AREA,CHAN,#AREA+36
	BCS	LKUPER
	TST	R1
	BEQ	FLEXST
	MOV	CHAN,R1
	INC	CHAN
	BIC	#177760,CHAN
	BR	EXIT2
LKUPER:	TSTB	@#ERRBYT
	BEQ	1$
	TST	R1
	BEQ	WRT
1$:	MOV	#-1,R1
	BR	EXIT2
WRT:	.ENTER	#AREA,CHAN,#AREA+36,#-1
	BCC	1$
	MOV	#-1,R1
	BR	EXIT2
1$:	MOV	CHAN,R1
	INC	CHAN
	BIC	#177760,CHAN
	BR	EXIT2
CSIERR:	MOV	#-4,R1
	BR	EXIT2
FETERR:	MOV	#-3,R1
	BR	EXIT2
FLEXST:	MOV	#-2,R1
	.CLOSE	CHAN
EXIT2:	MOV	R5,R0
	ADD	#2,(SP)
	RTS	PC
AREA:	.BLKW	39.
CHAN:	.WORD	0
DEXT:	.WORD	0,0,0,0
STORAG:	.BLKW	41.
TEMP:	.WORD	0
	.END